/**
 * 
 */
package com.cqcis.uip.base.framework.service;

import java.util.Map;

/**
 * 集合内容重置服务, 一般定义为一段时间后，将给定的集合数据重新设置
 * 
 * @author huangmy
 * @date 2008-2-21
 */
public interface ResetService {	
	/**
	 * 描述
	 * 
	 */
	public String getDescription();
	
	/**
	 * 启动
	 * 
	 */
	public void start() throws Exception;
	
	/**
	 * 停止
	 * 
	 */
	public void stop() throws Exception;
	
	/**
	 * 重置
	 * 
	 * @throws Exception
	 */
	public void reset() throws Exception;
	
	/**
	 * 先判断是否能够重置，如果不能，直接返回false, 如果可以, 则执行重置, 
	 * 重置成功，返回true，失败返回false
	 * 
	 */
	public boolean maybeReset(); // 主方法, 调用这个
	
	/**
	 * 重置时间间隔
	 * 
	 * @return
	 */
	public long getTimeToRegetConf();
	
	/**
	 * 最后一次重置时间
	 * 
	 * @return
	 */
	public long getLastResetTime();
	
	/**
	 * 缓冲
	 * 
	 * @return
	 */
	public Map<?, ?> getCache(); 
}
